/**
 * 工具函数
 */
//简历函数
function tips(msg, type = 'su', time = 2000) {
    let div = document.createElement('div')
    div.classList.add('totai')
    div.innerHTML =
        //===是等于的意思  相当su是type   换型了一下
        `
    <div class="motai1">
    ${type === 'su' ? "😁" : "😒"}
    <p>${msg}</p>
</div>
    `
    document.body.append(div)
    setTimeout(() => {
        div.remove()
    }, time);
}

/* 设置一个函数方便全局通用 */

function istongguo() {
    /* 获取本地储存的值 */
    let userId = localStorage.getItem('uid');
    /* 判断是否有这个值 */
    /* 如果没有 */
    if (!userId) {
        tips('请登录', '😒')
        /* 如果没有这个值  就跳转到登陆页面 */
        setTimeout(() => {
            location.href = "login.html";
        }, 2000);
        /* 阻止提交 */
        return false;
    }
    return userId;
}

/* 把尾部封装成函数方便调用 */

/* 这是一个函数  可以传参 */
function getfoot(ifto = 'home') {
    let footer = document.createElement('footer');
    footer.className = 'foot';
    footer.innerHTML =
        `
    <a href="./home.html" class="${ifto === 'home' ? "active" : ''}">
        <i class="iconfont iconhome"></i>
        <span>首页</span>
    </a>
    <a href="./run.html" class = "${ifto === 'sport' ? "active" : ''}">
        <i class="iconfont iconsports"></i>
        <span>运动</span>
    </a>
    <a href="#">
        <i class="iconfont iconcircle"></i>
        <span>圈子</span>
    </a>
    <a href="./my.html"class = "${ifto === 'my' ? "active" : ''}">
        <i class="iconfont iconmine"></i>
        <span>我的</span>
    </a>
    
    `
    /* 追加到页面中 */
    document.body.append(footer);
}
/* <footer>
<div class="foot">
    
</div>
</footer> */
/* <footer class="foot">


</footer> */
/* 获取ajax接口 */
//把这个函数挂载成全局变量

/* 图片上传框封装 */
function fileimg2(url, file, msg, succes) {
    let dt = new FormData();
    /* 把图片追加到dt之后 由于file是图片采用键值对的形式 */
    dt.append(msg, file);

    /* 配置ajax */
    /* 创建一个ajax接口 */
    let xhr = new XMLHttpRequest();
    /* 设置传参方式和地址  上传图片只能用post*/
    xhr.open("post", url);
    /* 发送 */
    xhr.send(dt)
    /* 设置时间监听器 */
    xhr.onreadystatechange = function (res) {
        /* 判断是否成功 */
        if (res.status === 200 && res.readyState === 4) {
            let abc = JSON.parse(xhr.responseText);
            console.log(abc)
            console.log(res)
            succes(data)
        }
    }
}

/* 补0函数 */

function getzero(n) {
    return n <= 9 ? "0" + n : n
}


/* 头部公用样式 */

function getheader(ifto = "run") {
    let header = document.createElement('header')
    header.className = "sporthead";
    header.innerHTML =
        `
      <a href="run.html" class=" ${ifto === "run" ? "active" : ""}">跑步</a>
      <a href="Cycling.html" class = " ${ifto === "Cycling" ? "active" : ""}">骑行</a>
      <a href="Course.html" class = "${ifto === "Course" ? "active" : ""}">课程训练</a>
      `
    document.body.insertBefore(header, document.querySelector("main"))
}

/* 渲染跑步时间 */

/* 当前日期渲染 */



// function getDistance(lat1, lng1, lat2, lng2) {

//     var radLat1 = rad(lat1);
//     var radLat2 = rad(lat2);
//     var a = radLat1 - radLat2;
//     var b = rad(lng1) - rad(lng2);
//     var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
//         Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
//     s = s * 6378.137; // EARTH_RADIUS;
//     s = Math.round(s * 10000) / 10000; //输出为公里
//     //s=s.toFixed(4);
//     console.info(s);
//     return s;
// }


function calcDistance(startPoint, curPoint) {
    // console.log(startPoint,curPoint);
    let lat1 = startPoint.lat
    let lng1 = startPoint.lng

    let lat2 = curPoint.lat
    let lng2 = curPoint.lng

    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378.137;
    s = Math.round(s * 10000) / 10000;
    return s.toFixed(2) // 单位千米
}


/* 计算配速函数 
  d： 距离
  s： 时间
*/
function calcPace(d, s) {
    let distance = d
    let spendTime = s / 60
    if (distance > 0 && spendTime > 0) {
        let pace = parseFloat(spendTime / distance)
        let m = Math.floor(pace)
        let s = ((pace - m) * 60).toFixed(0)
        return `${m}'${s}"`
    }
    return "--"
}

/* 计算卡路里 */
function calCalorie(miles) {
    if (miles > 0) {
        let calorie = 60 * miles * 1.036;
        return calorie.toFixed(2)
    }
    return "--"
}




window.$utils = {
    tips: tips,
    /* 挂载到window */
    istongguo: istongguo,
    getfoot: getfoot,
    getzero: getzero,
    getheader: getheader,
    calcDistance: calcDistance,
    calcPace: calcPace,
    calCalorie: calCalorie,

};
